package com.seckill.dis.common.api.goods;

import com.seckill.dis.common.api.goods.vo.GoodsVo;
import com.seckill.dis.common.api.seckill.vo.SeckillGoodsVO;
import com.seckill.dis.common.domain.SeckillGoods;
import com.seckill.dis.common.result.Result;

import java.util.List;

/**
 * 商品服务接口
 * @author noodle
 */
public interface GoodsServiceApi {

    /**
     * 获取商品列表
     * @return
     */
    List<GoodsVo> listGoodsVo();

    /**
     * 通过商品的id查出商品的所有信息（包含该商品的秒杀信息）
     * @param goodsId
     * @return
     */
    GoodsVo getGoodsVoByGoodsId(long goodsId);

    /**
     * 通过商品的id查出商品的所有信息（包含该商品的秒杀信息）
     * @param goodsId
     * @return
     */
    GoodsVo getGoodsVoByGoodsId(Long goodsId);

    /**
     * order表减库存
     * @param goods
     */
    boolean reduceStock(GoodsVo goods);

    /**
     * 发布秒杀活动
     * @param goods
     * @return
     */
    Result<?> addGoods(GoodsVo goods);


    /**
     * 新增秒杀活动
     * @return
     */
    Result<?> insertSeckill(SeckillGoodsVO seckillGoods);
}
